home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / CMPLTPAS / SHOWNAME.PAS < prev    next >
Pascal/Delphi Source File  |  1988-07-24  |  3KB  |  94 lines

  1. {--------------------------------------------------------------}
  2. {                          ShowName                            }
  3. {                                                              }
  4. {           Keyed file binary search demo program              }
  5. {                                                              }
  6. {                             by Jeff Duntemann                }
  7. {                             Turbo Pascal V5.0                }
  8. {                             Last update 7/24/88              }
  9. {                                                              }
  10. {     From: COMPLETE TURBO PASCAL 5.0  by Jeff Duntemann       }
  11. {    Scott, Foresman & Co., Inc. 1988   ISBN 0-673-38355-5     }
  12. {--------------------------------------------------------------}
  13.  
  14. { Unlike most programs in this book, this program requires two }
  15. { external files to operate: FRIENDS.NAP and FRIENDS.KEY.  The }
  16. { two files will be included on the source listings diskette.  }
  17. { FRIENDS.NAP is a file of NAPRec containing some number of    }
  18. { name/address/phone records.  FRIENDS.KEY is a sorted key     }
  19. { file containing keys extracted from FRIENDS.NAP.  You can    }
  20. { write a utility to extract keys from a .NAP file and sort    }
  21. { them using either the SHELLSORT or QUIKSORT procedures given }
  22. { in Section 14. }
  23.  
  24. PROGRAM ShowName;
  25.  
  26. TYPE
  27.   String3     = String[3];
  28.   String6     = String[6];
  29.   String30    = String[30];
  30.   String40    = String[40];
  31.   String80    = String[80];
  32.   String255   = String[255];
  33.  
  34.   NAPRec = RECORD
  35.              Name    : String30;
  36.              Address : String30;
  37.              City    : String30;
  38.              State   : String3;
  39.              Zip     : String6
  40.            END;
  41.  
  42.   NAPFile = FILE OF NAPRec;
  43.  
  44.   KeyRec  = RECORD
  45.               REF : Integer;
  46.               KeyData : String30
  47.             END;
  48.  
  49.   KeyFile = FILE OF KeyRec;
  50.  
  51.  
  52. VAR I,J,K     : Integer;
  53.     RecNum    : Integer;
  54.     Parm      : String80;
  55.     WorkRec   : NAPRec;
  56.     WorkFile  : NAPFile;
  57.     WorkKey   : KeyFile;
  58.  
  59.  
  60. {$I KSEARCH.SRC}   { Contains KeySearch }
  61.  
  62.  
  63. { SHOWNAME MAIN }
  64.  
  65. BEGIN
  66.   IF ParamCount < 1 THEN            { Missing parms error }
  67.     BEGIN
  68.       Writeln('<<Error!>> You must enter a name on the command line:');
  69.       Writeln('           A>SHOWNAME Duntemann*Jeff ')
  70.     END
  71.   ELSE
  72.     BEGIN
  73.       Parm := ParamStr(1);
  74.       Assign(WorkFile,'FRIENDS.NAP');  { Open the names data file }
  75.       Reset(WorkFile);
  76.       Assign(WorkKey,'FRIENDS.KEY');   { Open the names key file }
  77.       Reset(WorkKey);
  78.       IF KeySearch(WorkKey,RecNum,Parm) THEN  { If key is found...}
  79.         BEGIN                          { We have record # into data file }
  80.           Seek(WorkFile,RecNum);       { Seek to record # in data file }
  81.           Read(WorkFile,WorkRec);      { Read data record from data file }
  82.           WITH WorkRec DO              { and display the name/address data }
  83.             BEGIN
  84.               Writeln('>>NAME    : ',Name);
  85.               Writeln('  ADDRESS : ',Address);
  86.               Writeln('  CITY    : ',City);
  87.               Writeln('  STATE   : ',Zip);
  88.             END
  89.         END
  90.       ELSE
  91.         Writeln('>>Sorry, ',Parm,' not found.');
  92.     END
  93. END.
  94.